System for dynamically pushing information to a user utilizing global positioning system

ABSTRACT

A computer implemented method is provided for directing region-specific information. The method receives information relating to location of users, and provides location-specific information to the users.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.10/824,962 entitled “SYSTEM FOR DYNAMICALLY PUSHING INFORMATION TO AUSER UTILIZING GLOBAL POSITIONING SYSTEM” and filed on Apr. 15, 2004,which is a continuation of U.S. patent application Ser. No. 09/523,022entitled “SYSTEM FOR DYNAMICALLY PUSHING INFORMATION TO A USER UTILIZINGGLOBAL POSITIONING SYSTEM” and filed on Mar. 10, 2000, (now issued asU.S. Pat. No. 6,741,188), which is a continuation-in-part of U.S. patentapplication Ser. No. 09/426,065 filed Oct. 22, 1999 (now issued as U.S.Pat. No. 6,353,398).

FIELD OF THE INVENTION

The present invention described below generally relates to a system fordirecting information to specific geographic locations at related pointsin time, and more particularly to dynamically communicating linkedinformation to mobile users at specific geographic locations via aglobal satellite positioning system.

BACKGROUND OF THE INVENTION

Global positioning systems provide many conveniences for modern living.People may find themselves in completely unknown areas, and yet, theymay have the comfort of knowing a system has their location pinpointedand directed on a computer screen. Still better yet, global positioningsystems may provide directions for going from the unknown location to aknown location. While many users of conventional global positioningsystems value received location and directional information, morespecific and detailed information related to the location is oftenneeded. It is common experience to arrive at a particular destination(e.g., business or restaurant) after closing. Though a positioningsystem may have provided the directions to the location, it would beuseful to know what the normal business hours were for example whenarriving at the location. Likewise, it would be useful for a system topresent all known entity types in a certain region. If a person was inan unfamiliar city for example, and needed medical care, simply knowingthe present location would not direct the person to the nearesthospital. A more powerful system is therefore necessary to providemobile users with specific information relating to the point in time theuser is at a specific location. This type of system is currently notprovided for with conventional systems.

In view of the above issues, it would be desirable for a system whichcan provide relevant information to location-specific users at relevantpoints in time.

SUMMARY OF THE INVENTION

The present invention provides a system for directing and receivinginformation to and from geographically relevant locations. The systemlinks information from the internet or other relevant databases that isrelated to region-specific areas and directs the information to userssituated near the region-specific areas. The possibilities for the typeof information that may be linked to a geographic location is virtuallylimitless. In one particular instance, a store may announce a bargainsale at the same point in time that a customer is in close proximity. Inanother instance, a mobile user could stop at a home and receiveinformation from a homeowner who happens to be away or leave a messagefor the homeowner with the message easily retrieved from a web page ore-mail system. In still yet another instance, a menu may be observed fora restaurant simply by approaching the restaurant. The type ofinformation received from substantially any location resides in databases, such as the Internet, linked to the location by the presentinvention.

The present invention also provides for bidirectional operations. Forinstance, a query can be made inquiring of all the hospitals locatedwithin a square mile of the present location. The query in fact may besubstantially as broad or narrow as the user desires. The same hospitallocations may be queried for a given city or state, for example. As canbe appreciated, this type of information may be crucial to receivingemergency health care when one is in a time critical situation and inunfamiliar surroundings.

The present invention also provides for directing information to userswho meet certain criteria. Citing the example above, the storeadvertisement may be directed to only those drivers who are above orbelow a certain income level, for example. This type of demographicinformation may be obtained, for example, from the vehicle type (e.g.,expensive sports car), from past purchasing practices, or from surveysand studies. The present invention also provides a hand-held systemwhich allows users to receive region-specific information directed tothe user's particular location. For example, a user may be situated in anew location, and the user may then request and receive informationabout restaurants within a defined area defined by the user. Forexample, the user may query for restaurants within three blocks orwithin the entire city and receive specific audio and/or displayinformation related to the query.

According to another aspect of the present invention, informationsearches and queries may be defined and/or limited by the geographicalposition of a mobile user. This enables the user to select/query adesired topic while the system locates and directs information relatedto the user's location. This may be accomplished, for example, byassociating a region identifier to individual web sites. A mobilecommunications system gathers position information from a GPS system anddirects information related to the users physical location based uponthe region identifier associated with the individual website.Information searches are then refined to those regionally identifiedpositions of the user and related to a particular topic of interest. Forexample, an internet query of restaurants would normally retrievethousands of hits on a conventional search engine. By relating thesearch to the user's physical location, only those restaurantsassociated with the user's identified region, are provided. Thus,valuable time is saved and considerable convenience is provided byretrieving information related to a particular location.

To the accomplishment of the foregoing and related ends, the invention,then, comprises the features hereinafter fully described. The followingdescription and the annexed drawings set forth in detail certainillustrative embodiments of the invention. These embodiments areindicative, however, of but a few of the various ways in which theprinciples of the invention may be employed. Other objects, advantagesand novel features of the invention will become apparent from thefollowing detailed description of the invention when considered inconjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a global positioning directed informationsystem in accordance with the present invention;

FIG. 2 is a block diagram depicting a region directed information systemin accordance with the present invention;

FIG. 3 is a block diagram of a focus directed information system inaccordance with the present invention;

FIG. 4 is a block diagram of a hand-held directed information system inaccordance with the present invention;

FIG. 4 a is a block diagram of a regionally-identified informationsystem in accordance with the present invention;

FIG. 5 is a schematic block diagram of a system in accordance with thepresent invention;

FIG. 6 is a schematic block diagram of a system for providinginformation to a mobile data receiver in accordance with the presentinvention;

FIG. 7 is a schematic block diagram of an interactive system forproviding and requesting information to and from a mobile data receiverin accordance with the present invention;

FIG. 8 is a flow diagram illustrating a methodology for pushinginformation in accordance with the present invention;

FIG. 9 is a flow diagram illustrating a methodology for queryinginformation in accordance with the present invention; and

FIG. 10 is a flow diagram illustrating a methodology for providingwebsite information relating to a position in accordance with thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will now be described with reference to thedrawings, wherein like reference numerals are used to refer to likeelements throughout.

Referring initially to FIG. 1, a global positioning directed informationsystem (GPDIS) 20 having whereabout information from a location-specificuser system 40 is shown. The GPDIS 20 has access to an informationsystem such as the Internet 30 for providing region-directed informationto a location-specific user system 40 at any suitable point in time. Itis to be appreciated that the information system may include other databases than the Internet 30. The GPDIS 20 includes a satellite trackingsystem (not shown) such as a global positioning system (GPS) forlocating users and transmitting information to and from the user. Adirected information system (not shown) is combined with the GPS by thepresent invention to link the Internet system information withlocation-specific users. The directed information system is abidirectional system that allows specific information to be linked andtransmitted to specific geographic locations at specific points in time.Users may have information directed to them as they come within apredetermined proximity to certain locations or conversely, users mayacquire relevant information that is related to a particular area theuser may happen to be in.

The directed information system includes an object oriented computingand software system for linking relevant regional information sources tousers associated with the particular region. For example, the directedinformation system may define sectional regions in a city and associateparticular information with those regions. Whenever a location-specificuser is located within a particular region, the directed informationsystem may automatically transmit the region-specific information to thelocation directed by the user. The location-specific user system 40 ispreferably a mobile system and includes a display and audio informationsystem for communicating information to the user. Also, asending/receiving system is included for communicating with the GPSsystem. The display system communicates a plurality of relevant visualinformation related to a particular region at a particular point intime. The audio system provides audio related information to the mobilesystem. For example, as the user approaches a predetermined distance toa gas station, an audio message may alert the driver to a sale for motoroil. The audio and visual information may be changed as often as desiredby any particular location by simply changing the contents of theInternet data base. The mobile location-specific user system 40 may beimplemented in a plurality of systems. For example, automobile systems,cellular telephone systems, and hand-held mobile systems known as “palmpilots” may be employed to push information to users.

Now referring to FIG. 2, a particular embodiment of the presentinvention is shown employing push technology. A mobile user 50 is shownpassing by a restaurant 60 and a car dealership 70. The GPDIS 20 detectsthat the mobile user 50 is within a predetermined region that therestaurant and dealership are part of. The directed information systemof the GPDIS 20 links a web page or data source residing on the Internet30 related to the restaurant 60 and pushes the information via the GPSto the mobile user 50 as the user drives by the restaurant. Likewise,the directed information system pushes car dealership information to theuser as the user passes or is near the predetermined vicinity of the cardealership by linking internet information related to the cardealership.

Push technology is implemented as part of the directed informationsystem of the GPDIS 20, however, since object oriented programming isemployed, the push technology may be implemented across several systems.The technology is based in part on movement detection provided by aglobal positioning system. As a user moves within a predetermineddistance of any particular region, the directed information systempushes information to the user in connection to the movement. Uponnotification of the users whereabouts by the GPS, the directedinformation system links relevant information that is associated withthe particular geographical location and subsequently provides theinformation to the GPS for transmittal to the user as the user is withinthe predetermined area for reception of the relevant information. As theuser is moving, different audio and visual information is pushed inconnection with the movement. For example, as a user is within a firstgeographical region, Internet data associated with a first storage datasection is pushed to the user. As the user moves to a secondgeographical location, data associated with a second storage datasection is pushed to a user. Clearly, this sequence may be continuedsubstantially.

Now referring to FIG. 3 another embodiment of the present invention isshown. A focus directed information system 20 a is shown. The focusdirected system 20 a combines the directed information system mentionedabove with a selectively defined criteria parameter. The selectivelydefined criteria may include demographic and other related criteria forlinking specific information to a regionally located user. For example,as shown in FIG. 3, a demographically relevant user 84 may be riding inan expensive sports car. A demographically related data base 80 is thelinked to by the GPDIS 20 that contains relevant businesses that maycater exclusively to persons above a certain income level. As the car isdriven within a predetermined distance of a demographically relatedestablishment 82, the GPDIS provides demographically related information80 to the demographically relevant user 84. It is to be appreciated thatdemographic information may be obtained for users in a variety of ways.For example, users may provide survey information which is stored aspart of the demographic data base. It is further to be appreciated thatother information may trigger the directed information system totransmit relevant information to a user. For example, purchasers ofelectronic items may be sent notices as they pass within predetermineddistances of the electronics store. The electronics store data base isestablished from past purchases of electronics.

Turning now to FIG. 4, another embodiment of the present invention isshown.

A hand-held system 90 is shown which may wirelessly communicate with thedirected information system of the GPDIS 20. The hand-held system (e.g.,palm pilot) contains a computing and data input/output system (e.g.,keypad, microphone, speaker) for directing queries to and receivinginformation from the directed information system. For example, a usermay have the hand-held system 90 in a city the user is new to. The usermay direct a query to the GPDIS 20 inquiring which locally relatedestablishments 94 (e.g., restaurants, hospitals, businesses) are locatedwithin a square block of the user's present location. Upon receiving therequest, the directed information system finds the relatedestablishments within the square block, locates related Internet 30 database information and transmits the information to the hand-held system90 for audio or visual display. It is to be appreciated that the usermay have any suitable information delivered for which the directedinformation system has links for the specified region. As describedabove, push technology may also be employed to provide information tothe hand-held system.

Referring now to FIG. 4 a, another aspect of the present inventionrelates to embedding in a web site a field, code or other suitableidentifier of a geographic region corresponding to the web site. Forexample, the United States may be divided into N number of regions (Nbeing an integer). There may be M number of websites (M being aninteger), wherein each website is associated with at least one of the Nnumber of regions—each of the N regions having a unique identifier. Forillustrative purposes, N=2 and M=9 as shown in FIG. 4 a. It is to beappreciated that M and N may be substantially any number. When a searchis performed on the Internet 97 or other similar type of communicationmedium, a region identifier 96 is employed as part of the search tonarrow the search results to websites associated with a particulargeographic region of interest. The embedding of the region identifier 96into the website (or associating the region identifier with the website)may be accomplished via XML language for example or any other suitablemeans.

One system in accordance with the present invention integrates aportable mobile communications unit, 98 a and 98 b for example, with aGPS system 20 e and a region identifier of the present invention. Moreparticularly, the mobile communications units 98 a and 98 b areoperatively coupled to a GPS system 20 e which affords for dynamicallyidentifying a physical location of the mobile communications unit aswell as tracking the movement of the unit. The units are alsooperatively coupled to the Internet 97 and includes a system (e.g., webbrowser) for performing searches on the Internet. A user of the mobilecommunication unit can conduct an Internet search via the unit and limitthe search by employing the GPS system associated therewith as well asthe region identifier. For example, if a user is in downtown Seattle,Wash. and desires to search the Internet for a sushi restaurant. Theuser can initiate a web search from the unit. The GPS system associatedwith the unit will identify that the user is located in downtownSeattle. The user will input a search term such as “sushi restaurant”.The system of the present invention will automatically insert a uniqueregion identifier (e.g., N=0001100100011110) associated with a onesquare mile region wherein the mobile communication unit is located atthe center of the one square mile region. The search results will thenbe limited to websites relating to sushi restaurants originating and/orassociated with that particular one square mile region. Thus, the useris able to quickly locate a sushi restaurant within one square mile ofhis/her present location.

A similar type of search using conventional systems employing searchterms such as “sushi”, “Seattle” and “restaurant” would likely haveresulted in thousands of hits—most of which are not of interest to theuser.

It is to be appreciated that the size of the unique region identifiermay be suitably tailored to meet a user's particular search needs.Furthermore, it is to be appreciated that the user may also tailor theshape and direction of the unique region identifier. For example, theuser may wish for the search to be conducted in a circular region,parabolic region, triangular region, etc., or the user may wish that theunique region identifier be of a particular shape and/or direction(e.g., North, South, East or West).

Furthermore, if the user is on the move, the system may dynamicallyupdate the search results to correspond to the changing location of themobile communication unit.

Referring now to FIG. 5, a detailed block diagram of a computer system10 c is shown in accordance with the present invention. This system maybe employed as either a client and/or a server in accordance with thepresent invention and may be implemented by any of the systems includingthe directed information system or the hand-held system described above.The computer system 10 c includes a central processing unit (CPU) 120which is coupled to a bus 122. The CPU or processor 120 can be any of aplurality of processors, such as the Pentium, Pentium II, Pentium MMX,Pentium Merced, Power PC, SPARC, SGI_MIPS and other similar andcompatible processors. It will be appreciated that since the presentinvention provides for a multi-platform environment as described ingreater detail below, most major processors and/or computers may beemployed to carry out the present invention. The processor 120 functionsto perform various operations described herein as well as for carryingout other operations related to the system 10 c. The manner in which theprocessor 120 can be programmed to carry out the functions relating tothe present invention will be readily apparent to those having ordinaryskill in the art based on the description provided herein.

The bus 122 includes a plurality of signal lines 124 for conveyingaddresses, data and controls between the CPU 120 and a number of othersystem bus components. The other system bus components include a memory128 (including a Random Access Memory (RAM) 130 and a Read Only Memory(ROM) 132) and a plurality of input/output (I/O) devices. The memory 128serves as data storage and may store appropriate operating code to beexecuted by the processor 120 for carrying out the functions describedherein.

The RAM 130 provides program instruction storage and working memory forthe CPU 120. The ROM 132 contains software instructions known as theBasic Input/Output System (BIOS) for performing interface operationswith the I/O devices. Also stored in the ROM 132 is a software routinewhich operates to load a boot program from the booting device. The bootprogram will typically be executed when the computer system 10 c ispowered on or when initialization of the system 10 c is needed.

The I/O devices (optionally included in the mobile systems) includebasic devices such as data storage devices (e.g., floppy disks, tapedrives, CD ROMs, hard disks). Typically, the I/O devices communicatewith the CPU 120 by generating interrupts. The CPU 120 distinguishesinterrupts from among the I/O devices through individual interrupt codesassigned thereto. Responses of the CPU 120 to the I/O device interruptsdiffer, depending, among other things, on the devices generating theinterrupts. Interrupt vectors are provided to direct the CPU 120 todifferent interrupt handling routines.

The interrupt vectors are generated during initialization (e.g., bootup) of the computer system 10 c by execution of the BIOS. Becauseresponses of the CPU 120 to device interrupts may need to be changedfrom time to time, the interrupt vectors may need to be modified fromtime to time in order to direct the CPU 120 to different interrupthandling routines. To allow for modification of the interrupt vectors,they are stored in the RAM 130 during operation of the computer system10 c.

A disk control subsystem 140 bidirectionally couples one or more diskdrives 142 (e.g., floppy disk drives, CD-ROM drives, etc.) to the systembus 122. The disk drive 142 works in conjunction with a removablestorage medium such as a floppy diskette or CD-ROM.

A hard drive control subsystem 146 bidirectionally couples a rotatingfixed disk, or hard drive 148 to the system bus 122. The hard drivecontrol subsystem 146 and hard drive 148 provide mass storage for CPUinstructions and data.

A terminal control subsystem 156 is also coupled to the bus 122 andprovides output to a display device 158, typically a CRT monitor or LCDdisplay, and receives inputs from a manual input device 160 such as akeyboard. The terminal control system, the display device, and themanual input device are typically included in the mobile systemsdescribed above, however, they may be optionally included with thedirected information system and global positioning systems, for example.

A network adapter 170 is provided for coupling the system 10 c to anetwork. It is noted that the directed information system requires anetwork adapter in order to access the Internet.

One of the preferred implementations of the present invention is asseveral sets of instructions in a code module resident in the mainmemory (e.g., RAM 130). Until required by the computer system 10 c, thesets of instructions may be stored in another computer memory, forexample, in a hard disk drive, or in a removable memory such as anoptical disk for eventual use in a CDROM or a floppy disk for eventualuse in the floppy disk drive.

In the preferred embodiment, the present invention is implemented viaobject oriented programming techniques. Object oriented programmingshifts the emphasis of software development away from functiondecomposition and towards the recognition of units of software called“objects” which encapsulate both data and functions. Object OrientedProgramming (OOP) objects are software entities comprising datastructures and operations on data. Together, these elements enableobjects to model virtually any real-world entity in terms of itscharacteristics, represented by its data elements, and its behaviorrepresented by its data manipulation functions. In this way, objects canmodel concrete things like people and computers, and they can modelabstract concepts like numbers or geometrical concepts.

The benefit of object technology arises out of three basic principles:encapsulation, polymorphism and inheritance.

Objects hide or encapsulate the internal structure of their data and thealgorithms by which their functions work. Instead of exposing theseimplementation details, objects present interfaces that represent theirabstractions cleanly with no extraneous information. Polymorphism takesencapsulation one step further—the idea being many shapes, oneinterface. A software component can make a request of another componentwithout knowing exactly what that component is. The component thatreceives the request interprets it and figures out according to itsvariables and data how to execute the request. The third principle isinheritance, which allows developers to reuse pre-existing design andcode. This capability allows developers to avoid creating software fromscratch. Rather, through inheritance, developers derive subclasses thatinherit behaviors which the developer then customizes to meet particularneeds.

In particular, an object includes, and is characterized by, a set ofdata (e.g., image data) and a set of operations (e.g., methods), thatcan operate on the data. Generally, an object's data is ideally changedonly through the operation of the object's methods. Methods in an objectare invoked by passing a message to the object (e.g., message passing).The message specifies a method name and an argument list. When theobject receives the message, code associated with the named method isexecuted with the formal parameters of the method bound to thecorresponding values in the argument list. Methods and message passingin OOP are analogous to procedures and procedure calls inprocedure-oriented software environments.

However, while procedures operate to modify and return passedparameters, methods operate to modify the internal state of theassociated objects (by modifying the data contained therein). Thecombination of data and methods in objects is called encapsulation.Encapsulation provides for the state of an object to only be changed bywell-defined methods associated with the object. When the behavior of anobject is confined to such well-defined locations and interfaces,changes (e.g., code modifications) in the object will have minimalimpact on the other objects and elements in the system.

Each object is an instance of some class. A class includes a set of dataattributes plus a set of allowable operations (e.g., methods) on thedata attributes. As mentioned above, OOP supports inheritance—a class(called a subclass) may be derived from another class (called a baseclass, parent class, etc.), where the subclass inherits the dataattributes and methods of the base class. The subclass may specializethe base class by adding code which overrides the data and/or methods ofthe base class, or which adds new data attributes and methods. Thus,inheritance represents a mechanism by which abstractions are madeincreasingly concrete as subclasses are created for greater levels ofspecialization.

The use of object oriented programming provides for a framework approachto object based application development. The present invention employsabstract classes, which are designs of sets of objects that collaborateto carry out a set of responsibilities. Frameworks are essentiallygroups of interconnected objects and classes that provide aprefabricated structure for a working application.

Accordingly, a user interface framework in accordance with the presentinvention may provide the support and default behavior of user displaywindows, tool bars, command bars, etc. By basing the framework on objectoriented technology, the behavior can be inherited and overridden toallow developers to extend the framework and create customized solutionsin the push technology arena. As a result, significant advantages areachieved over employing conventional programming techniques used in theimage analysis area since a programmer is not required to changeoriginal code but rather to extend from existing code. Moreover, thedevelopers no longer have to work blindly through layers of code becausethe framework provides architectural guidance and modeling and alsofrees the programmers to supply specific actions unique to the imageanalysis problem domain.

According to an exemplary embodiment of the present invention, Java isemployed to carry out the present invention. Java is an object-oriented,distributed, secure, architecture neutral language. Java provides forobject-oriented design which facilitates the clean definition ofinterfaces and makes it possible to provide reusable “software ICs.”Java has an extensive library of routines for copying easily with TCP/IPprotocols like HTTP and FTP. Java applications can open and accessobjects across a network via URLs with the same ease to whichprogrammers are accustomed to accessing a local file system.

Furthermore, Java utilizes “references” in place of a pointer model andso eliminates the possibility of overwriting memory and corrupting data.Instead of pointer arithmetic that is employed in many conventionalsystems, the Java “virtual machine” mediates access to Java objects(attributes and methods) in a type-safe way. In addition, it is notpossible to turn an arbitrary integer into a reference by casting (aswould be the case in C and C++ programs). In so doing, Java enables theconstruction of virus-free, tamper-free systems. The changes to thesemantics of references make it virtually impossible for applications toforge access to data structures or to access private data in objectsthat they do not have access to. As a result, most activities of virusesare precluded from corrupting a Java system.

Java affords for the support of applications on networks. Networks arecomposed of a variety of systems with a variety of CPU and operatingsystem architectures. To enable a Java application to execute anywhereon the network, a compiler generates an architecture neutral object fileformat—the compiled code is executable on many processors, given thepresence of the Java runtime system. Thus, Java is useful not only fornetworks but also for single system software distribution. In thepresent personal computer market, application writers have to produceversions of their applications that are compatible with the IBM PC andwith the Apple Macintosh. However, with Java, the same version of theapplication runs on all platforms. The Java compiler accomplishes thisby generating bytecode instructions which have nothing to do with aparticular computer architecture. Rather, they are designed to be botheasy to interpret on any machine and easily translated into nativemachine code on the fly.

Being architecture neutral, the “implementation dependent” aspects ofthe system are reduced or eliminated. The Java virtual machine (VM) canexecute Java bytecodes directly on any machine to which the VM has beenported. Since linking is a more incremental and lightweight process, thedevelopment process can be much more rapid and exploratory. As part ofthe bytecode stream, more compile-time information is carried over andavailable at runtime.

Thus, the use of Java in the present invention provides a server to sendregion-specific and related information programs over the network aseasily as traditional servers send data. These programs can display andmanipulate data, such as related advertising information on a clientcomputer. The present invention through the use of Java supportsexecution on multiple platforms. That is the same programs can be run onsubstantially all computers—the same Java program can work on aMacintosh, a Windows 95 machine, a Sun workstation, etc. It should beappreciated, however, that a Java stand-alone application may beconstructed to achieve a substantially equivalent result. Although thepresent invention is described with respect to employing Java, it willbe appreciated that any suitable programming language may be employed tocarry out the present invention.

The present invention instantiates Java client classes by name at runtime to implement client interfaces to changing server components. Thatis the present invention integrates the Java programming to communicatewith services distributed on various computers (e.g., mobile andstationary) on the intranet through the use of distributed objecttechnology, which is discussed in greater detail below.

Using this technology, a related task can be performed by the computermost optimally suited for it, and these decisions can be madedynamically. For example, if a given computer that provides a service isbusy or down, the system will find an alternate source for that service,and provide it to the client immediately. The combination of Java-basedclient software and distributed object based services leads to aclient/server system that facilitates push technology substantially.

Most current and past object oriented programming (OOP) systems arerestricted to utilizing and making calls to objects within the sameaddress space as the process utilizing or calling the objects. That is,a process cannot typically access objects located within other processesincluding where those other processes are located on the same ordifferent host computers. However, distributed OOP systems allowprocesses to access objects located in remote address spaces located inthe same or other host systems. A standard for such distributed OOPsystems currently exists called Common Object Request BrokerArchitecture (CORBA) and is described in The Common Object RequestBroker: Architecture and Specification, published by the ObjectManagement Group (OMG), which is hereby incorporated by reference. Thisarchitecture allows a process to make calls to objects in other addressspaces typically by constructing the necessary communication pathsduring compilation.

In simple terms, CORBA allows applications to interact and communicateclosely at a higher level of abstraction than merely sending packets ofdata back and forth. Applications in a heterogeneous computingenvironment can interact without worries of how the two differentmachines and operating systems can interface. Thus, CORBA specifies asystem which provides interoperability between objects in aheterogeneous distributed environment and in a way transparent to theprogrammer. It is to be appreciated that CORBA is but one way ofcommunicating with distributed objects. For example, a DCOM (DistributedComponent Object Model) developed by Microsoft may be employed toaccomplish the same task.

Turning now to FIG. 6, a system 200 is provided for pushing informationto a plurality of mobile data receivers 210 according to a user'sprofile and position. The system 200 associates the position of themobile data receivers 210 with related information according to theidentity of a user and directs information to the user. Information maybe provided via a global communications network 220 (e.g., Internet)associated with a plurality of distributed servers 230 (e.g., webpages). The global communications network 220 may be wireless (e.g.,satellite, cellular, PCS, infrared) or wired (e.g., telephone, twistedpair, coaxial cable). A server/service provider 240 directs informationfrom the global communications network 220 via a wireless communicationslink 250 to the mobile data receivers 210. As will be described in moredetail below, the server 240 may be provided with access to a searchengine 260, a client data base 270, and a geographic position filter280.

Referring now to the mobile data receivers 210, a geographic positionsensor 210 is provided to indicate position of a user. Preferably, thesensor 210 is a high resolution (e.g., within about 50 ft. radius)global positioning system as described above. Alternatively, a personalcommunications system (PCS) may provide a substantially defined locationof the user's position. For example, the PCS system generally includestransceivers which are associated with any given region or metropolitanarea. Based upon communications between the PCS and related mobile datareceiver 210, a position may be determined from the relatedcommunications associated therewith. The mobile data receiver alsoincludes a wireless communications link 210 b for communicating with theserver 240. A human interface 210 c includes an output mechanism (e.g.,speaker, visual display, tactile device for visually impaired) todeliver related information to the user.

The mobile data receiver 210 along with providing position informationto the server 240, also may provide a data receiver identifier forindicating specific facts, features, and/or other information related tothe user. The data receiver identifier and position information isprovided to the wireless communications link 250 and directed to theserver 240.

The server 240 is operatively coupled to a client profile data base 270which may be accessed via a search engine 260. The client data base 270may include a mass storage medium and contains related information topredetermined user profiles. The user profiles can be determined forexample, from past user accesses to the server 240 and/or may bedetermined by related demographic user information. The information mayalso be compiled, as described above, from previous sales exchangesand/or queries with the system 200. From the position data receiveridentifier received from the mobile data receiver, the server 240 maydirect the search engine 260 to provide (e.g., push) relatedinformation. For example, if the data receiver identifier is related toa single person who frequents expensive restaurants and shops, theserver 240 can direct the search engine 260 to retrieve informationrelated to the user's preferences while also limiting the search to theuser's geographic location. Thus, substantially relevant information toa user's time and place is directed to the user while extraneousinformation that may be retrieved as with conventional systems issubstantially removed. The geographic position filter 280 may beemployed to further refine the search of information related to the userby further restricting the search engine 260 to information related tothe users geographic position. This may be achieved by relating websites associated with distributed servers 230 with geographicidentifiers (e.g., XML embedded identifiers based upon predeterminedregions). A search of information may then be based upon the usersgeographic position and the identifiers associated with the web sites.Thus, client profile information is further refined to a particularregion.

By communicating through the server 240, the search engine 260 may haveaccess to the global communications network 220 and/or substantially anymass storage medium for providing information. As described above, thesearch engine 240 may be substantially refined to relevant informationsites of geographic interest since the global positioning system 210 acan provide substantially high resolution position information to theglobal positioning filter 280.

Referring now to FIG. 7, an interactive system 200 a is depicted whichenables a user to direct queries to a server 240. A processor 210 d andassociated memory 210 e may be included with the mobile data receiver210 to provide interactive access and/or query of the server 240. Theprocessor 210 d may be configured from the memory 210 e to receive input(e.g., keyboard, audio, voice) from the human interface 210 c. A dataquery may be initiated by associating a user identification number/code(user ID) with a particular request of information from the user. Theserver 240, upon receiving the query, may direct the search engine 260to provide information based on the user ID and related positioninformation. The user ID may be employed by the search engine 260 toretrieve a user profile from client profile database 270 to furtherrefine the search. In this manner, substantially relevant informationrelated to the user profile and the user's position may be efficientlyprovided. It is to be appreciated that the user may also initiatequeries based on other factors than position and/or profile byinitiating queries that expand the search process. For example, a querymay be broadened by providing predetermined codes to the user which maybe included in the query to override search restrictions on the userprofile. In this manner, a user may desire to receive all relevantinformation related to a location rather than information substantiallylimited to the user profile.

Now referring to FIG. 8, a flow diagram is shown which illustrates amethodology for pushing information to a user situated at a geographiclocation. At step 300, a position is determined for the user within ageographic location. As described above, this may be determined from aglobal positioning system located within a mobile data receiver. At step310, a search is directed by a server. The search may be refined bylimiting the search to known profiles associated with the user forexample. At step 320, a set of data is identified that is responsive tothe search initiated in step 310. At step 330, the identified data fromstep 320 is further refined to form a subset of identified datacorresponding to the position information determined in step 300. Atstep 340, the subset of data determined in step 330 is transmitted tothe mobile data receiver wherein the user may receive informationrelated to the user's geographic location.

Turning now to FIG. 9, a flow diagram is shown which illustrates amethodology for providing interactive information to a user associatedwith a mobile data receiver. At step 350, a data profile is identifiedfor a user. As described above, the profile may be determined fromdemographic information for example. At step 360 a geographic positionis determined for the mobile data receiver as described above. At step370, a query is formulated based on the profile determined at step 350.The query may be interactively driven by the user from the mobile datareceiver. At step 380, a search engine is utilized to retrieve a set ofinformation responsive to the query in step 370. At step 390, a subsetof the data retrieved in step 380, is further refined by the positioninformation determined at step 360. At step 400, the subset of datadetermined at step 390 is transmitted to the mobile data receiverwhereby the user may then receive the information. It is to beappreciated that the profile in step 350 may alternatively be determinedby monitoring a user's prior queries to an information system. The userprofiles may then be defined and determined substantially automaticallyin relation to the user's past access to the information system.

Now turning to FIG. 10, a flow diagram illustrates a methodology forassociating website information with related geographic information. Atstep 410, a set of machine readable data is created by forming a websitein HTML format for example. At step 420, geographic position information(e.g., metatag) is associated with the website. At step 430, theposition information and the related website is stored in a mass storagemedium. At step 440, the mass storage medium is operatively coupled to aglobal communications network whereby information related to the websiteand associated geographic information may be provided.

What has been described above are preferred embodiments of the presentinvention. It is, of course, not possible to describe every conceivablecombination of components or methodologies for purposes of describingthe present invention, but one of ordinary skill in the art willrecognize that many further combinations and permutations of the presentinvention are possible. Accordingly, the present invention is intendedto embrace all such alterations, modifications and variations that fallwithin the spirit and scope of the appended claims.

1. A method comprising: maintaining an index of information sources,wherein each information source is associated with (i) a demographiccode and (ii) one or more location codes, wherein each location codecorresponds to a geographic region; maintaining an index ofcommunications devices, wherein each communications device is associatedwith a demographic code; and initiating the transmission of relevantdata to a communications device in response to receiving (i) anidentifier corresponding to the communications device and (ii) anindication of the geographic position of the communications device,wherein the relevant data originates from at least one informationsource that is associated with both (i) a location code corresponding toa geographic region within a defined distance from the geographicposition specified in the received indication, and (ii) a demographiccode associated with the communications device specified in the receivedindication.
 2. The method of claim 1 wherein the relevant data is basedon the time and day that the indication is received.
 3. The method ofclaim 1 wherein the association of each communications device with ademographic code is based on one or more of (i) an annual income of thecommunications device user, (ii) a vehicle owned by the communicationsdevice user, (iii) an Internet search history of the communicationsdevice user, and/or (iv) a purchase history of the communications deviceuser.
 4. The method of claim 1 wherein the association of eachcommunications device with a corresponding demographic code is receivedfrom a network source.
 5. The method of claim 1 wherein the informationsource is an Internet website.
 6. The method of claim 1 wherein theassociation of each information source with its corresponding one ormore location codes is based on one or more location codes encoded indata associated with the information source.
 7. The method of claim 1wherein the association of each information source with itscorresponding one or more location codes is received from a network datasource.
 8. The method of claim 1 wherein the association of eachinformation source with a corresponding demographic code is receivedfrom a network data source.
 9. The method of claim 1 wherein theindication of the geographic position of the communications device isreceived from the communications device.
 10. The method of claim 1wherein indication of the geographic position of the communicationsdevice is received from a system that monitors the geographic positionof the communications device.
 11. A system comprising: an informationsource database comprising an index of information sources, wherein eachinformation source is associated with (i) a demographic code and (ii)one or more location codes, wherein each location code corresponds to ageographic region; a communications device database comprising an indexof communications devices, wherein each communications device isassociated with a demographic code; and a processor for initiating thetransmission of relevant data to a communications device in response toreceiving (i) an identifier corresponding to the communications deviceand (ii) an indication of the geographic position of the communicationsdevice, wherein the relevant data originates from at least oneinformation source that is associated with both (i) a location codecorresponding to a geographic region within a defined distance from thegeographic position specified in the received indication, and (ii) ademographic code associated with the communications device specified inthe received indication.
 12. The system of claim 11 wherein the relevantdata is based on the time and day that the indication is received. 13.The system of claim 11 wherein the association of each communicationsdevice with a demographic code is based on one or more of (i) an annualincome of the communications device user, (ii) a vehicle owned by thecommunications device user, (iii) an Internet search history of thecommunications device user, and/or (iv) a purchase history of thecommunications device user.
 14. The system of claim 11 wherein theassociation of each communications device with a correspondingdemographic code is received from a network source.
 15. The system ofclaim 11 wherein the information source is an Internet website.
 16. Thesystem of claim 11 wherein the association of each information sourcewith its corresponding one or more location codes is based on one ormore location codes encoded in data associated with the informationsource.
 17. The system of claim 11 wherein the association of eachinformation source with its corresponding one or more location codes isreceived from a network data source.
 18. The system of claim 11 whereinthe association of each information source with a correspondingdemographic code is received from a network data source.
 19. The systemof claim 11 wherein the indication of the geographic position of thecommunications device is received from the communications device. 20.The system of claim 11 wherein indication of the geographic position ofthe communications device is received from a system that monitors thegeographic position of the communications device.
 21. A computerreadable media with instructions to cause a processor to perform thesteps of: maintaining an index of information sources, wherein eachinformation source is associated with (i) a demographic code and (ii)one or more location codes, wherein each location code corresponds to ageographic region; maintaining an index of communications devices,wherein each communications device is associated with a demographiccode; and initiating the transmission of relevant data to acommunications device in response to receiving (i) an identifiercorresponding to the communications device and (ii) an indication of thegeographic position of the communications device, wherein the relevantdata originates from at least one information source that is associatedwith both (i) a location code corresponding to a geographic regionwithin a defined distance from the geographic position specified in thereceived indication, and (ii) a demographic code associated with thecommunications device specified in the received indication.